ListView中使用ViewHolder,setBackground失效

情境:

在 Fragement 中使用了 listView,listView 中 也用了 viewHolder

當在程式中動態指定要更換某個 id 的 row 中的背景時

someView.setBackground();

發現每個 row 的背景開始亂跳

有些非指定的 row 竟然也會更換背景

後來一查

這是用view holder中常見的error

只要再將背景變回來即可….

[sourcecode language=”JAVA”]

//view holder處理

…..

//針對某列處理
if (要對TextViewB做動作的條件) {
holder.TextViewB.setBackground(要換的背景圖);
} else {
holder.TextViewB.setBackground(原來的背景圖);
}

[/sourcecode]

資料來源:
http://stackoverflow.com/questions/18986730/personalized-listview-error-on-set-background-color

另外

設背景圖後
如果要動態移除背景圖,可以使用下面方式

[sourcecode language=”JAVA”]
view.setBackgroundResource(0);

[/sourcecode]

 

資料來源:
http://stackoverflow.com/questions/6826564/android-remove-background-drawable-programmatically

About: Kaito


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料